﻿using System;
using System.Data;
using MySql.Data.MySqlClient;

public class Conn
{
    public string ServerName;  //nome do servidor de mysql
    public string DataBaseName;//nome do banco de dados que irra acessar
    public string UserName;    //nome usuario que tenha total acesso ao banco
    public string Pass;        //Senha do banco

    ///<summary>
    ///Classe contem funcoes que facilitan o gerenciamendo da querry ao banco de dados MySQL
    ///</summary>
    ///<param name="Server">String que descreve o caminho do servidor mysql</param>
    ///<param name="DataBase">Nome do Banco de dados MySQL que sera usado nas funções</param>
    ///<param name="Usuario">Nome do usuario que sera utilizado</param>
    ///<param name="PassWord">Senha do usuario</param>
	public Conn(string Server, string DataBase, string Usuario, string PassWord)
	{
        ServerName = Server;
        DataBaseName = DataBase;
        UserName = Usuario;
        Pass = PassWord;
	}

    /// <summary>
    /// Pesquie para pesquisa em banco caso se queira se rotone dados.
    /// </summary>
    /// <param name="SQL">Querry que sera a pesquisa</param>
    /// <returns>DataSet com as informacoes da pesquisa</returns>
    public DataSet PesquisaGenerica(string SQL)
    {
        DataSet dSet = new DataSet();
        string stringConn = "Server= "+ServerName+"; DATABASE="+DataBaseName+"; UID="+UserName+"; PASSWORD="+Pass+";";
        MySqlConnection conn = new MySqlConnection(stringConn);
        MySqlCommand cmd = new MySqlCommand(SQL, conn);
        MySqlDataAdapter objAdapter = new MySqlDataAdapter(cmd);
        conn.Open();
        objAdapter.Fill(dSet);
        conn.Close();
        return dSet;
    }
    /// <summary>
    /// Pesquisa a seguencia de uma coluna de inteiro, o sequencia sera gerado na class nao no banco.
    /// </summary>
    /// <param name="Tabela">O nome da tabela desejada</param>
    /// <param name="Coluna">A coluna da tabela que sera gerada o sequencia</param>
    /// <returns></returns>
    public int GetID(string Tabela, string Coluna)
    {
        DataSet ds = new DataSet();
        int cont = 0;
        ds = PesquisaGenerica("SELECT " + Coluna + " FROM " + Tabela);

        for (cont = 0; cont < ds.Tables[0].Rows.Count; cont++)
        {
            if (ds.Tables[0].Rows.Count == 0)
            {
                return 0;
            }
            else if (cont == Convert.ToInt32(ds.Tables[0].Rows[cont][0]))
            {
                continue;
            }
        }
        return cont;
    }
    /// <summary>
    /// Usado quando se quer inserir um dando e nao se esprera dados como retorno
    /// </summary>
    /// <param name="Sql">Querry que sera executa no banco MySQL</param>
    public void ExecSql(string Sql)
    {
        string stringConn = "Server= " + ServerName + "; DATABASE=" + DataBaseName + "; UID=" + UserName + "; PASSWORD=" + Pass + ";";
        MySqlConnection conn = new MySqlConnection(stringConn);
        conn.Open();
        MySqlCommand command = new MySqlCommand(Sql, conn);
        command.ExecuteNonQuery();
        conn.Close();
    }
}
